package com.l.Thread;

/**
 * 创建线程的方式二：实现Runnable接口
 * 1.创建一个实现了Runnable接口的类
 * 2.实现类去实现Runnable接口的方法
 * 3.创建实现类的对象
 * 4.将此对象作为参数传递到Thread类的构造器中，创建Thread类中的对象
 * 5.通过Thread类中的对象调用start()
 *
 * 比较创建线程的两种方式。
 * 开发中：优先选择：实现Runnable接口的方式
 * 原因：1.实现的方式没有类的单继承的局限性
 *      2.现实的方式更适合来处理多个线程有共享数据的情况
 *
 * 联系：public class Thread implements Runnable
 * 相同点：两种方式都需要重写run(),将线程要执行的逻辑声明在run()中。
 *
 *
 * @author Mc.Chai
 * @program: Java基础
 * @create 2021-11-10-19:49 19:49
 */
public class TestThread2 {
    public static void main(String[] args) {
        //3.创建实现类的对象
        TestRunnable runnable = new TestRunnable();
        //4.将此对象作为参数传递到Thread类的构造器中，创建Thread类中的对象
        Thread thread=new Thread(runnable);
        thread.setName("线程一");
        //5.通过Thread类中的对象调用start()
        //①启动线程 ②调用Thread里的run()---->调用TestRunnable中的run()
        thread.start();
    }
}
//1.创建一个实现了Runnable接口的类
class TestRunnable implements Runnable{
    //2.实现类去实现Runnable接口的方法
    @Override
    public void run() {
        for (int i = 0; i < 100; i++) {
            if (i%2==0){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
        }

    }

}
